"""
qvq-max
sk-b8575714afad46d2a2cd5156aa11b6b5
"""

import os
from dashscope import MultiModalConversation

messages = [
    {
        "role": "user",
        "content": [
            {"image": "https://hhit-edu.tos-cn-beijing.volces.com/uploads/2025/04/08/096286c8-603d-4c2a-ae15-c44004e96886.png"},
            {"text": """
             图中是一道数学题目，请判断是否包含数学图形或者几何图形，如果包含，请用threejs准确的绘制一个三维的这个图形并返回源码，我已经有了页面骨架,我使用的是最新版的threejs，请你返回一个绘制的function代码就行。
             要求这个方法只要传入scene就能直接运行，返回内容只包含这个function不包含其他任何内容。特别注意：你使用threejs的版本必须要是最新的，不要使用Geometry
             """
             }
        ]
    }
]

response = MultiModalConversation.call(
    # 若没有配置环境变量，请用百炼API Key将下行替换为：api_key="sk-xxx",
    api_key="sk-b8575714afad46d2a2cd5156aa11b6b5",
    model="qvq-max",  # 此处以qvq-max为例，可按需更换模型名称。
    messages=messages,
    stream=True,
)

# 定义完整思考过程
reasoning_content = ""
# 定义完整回复
answer_content = ""
# 判断是否结束思考过程并开始回复
is_answering = False

print("=" * 20 + "思考过程" + "=" * 20)

for chunk in response:
    # 如果思考过程与回复皆为空，则忽略
    message = chunk.output.choices[0].message
    reasoning_content_chunk = message.get("reasoning_content", None)
    if (chunk.output.choices[0].message.content == [] and
        reasoning_content_chunk == ""):
        pass
    else:
        # 如果当前为思考过程
        if reasoning_content_chunk != None and chunk.output.choices[0].message.content == []:
            print(chunk.output.choices[0].message.reasoning_content, end="")
            reasoning_content += chunk.output.choices[0].message.reasoning_content
        # 如果当前为回复
        elif chunk.output.choices[0].message.content != []:
            if not is_answering:
                print("\n" + "=" * 20 + "完整回复" + "=" * 20)
                is_answering = True
            print(chunk.output.choices[0].message.content[0]["text"], end="")
            answer_content += chunk.output.choices[0].message.content[0]["text"]

# 如果您需要打印完整思考过程与完整回复，请将以下代码解除注释后运行
# print("=" * 20 + "完整思考过程" + "=" * 20 + "\n")
# print(f"{reasoning_content}")
# print("=" * 20 + "完整回复" + "=" * 20 + "\n")
# print(f"{answer_content}")